package JavaDesignModel;
// 实验三 阶段一 使用简单工厂类重构


// 抽象产品
abstract class TV {
    public abstract void assemble();
    public abstract void test();
    public abstract void pack();
}

// 具体产品：LED电视
class LEDTV extends TV {
    @Override
    public void assemble() {
        System.out.println("组装LED电视组件");
    }

    @Override
    public void test() {
        System.out.println("测试LED电视功能");
    }

    @Override
    public void pack() {
        System.out.println("打包LED电视");
    }
}

// 具体产品：OLED电视
class OLEDTV extends TV {
    @Override
    public void assemble() {
        System.out.println("组装OLED电视组件");
    }

    @Override
    public void test() {
        System.out.println("测试OLED电视功能");
    }

    @Override
    public void pack() {
        System.out.println("打包OLED电视");
    }
}

// 简单工厂类
class TVFactory {
    public static TV createTV(String type) {
      TV tv = null;
      type = type.toLowerCase();
      if (type.equals("led")) { tv = new LEDTV(); }
      else if (type.equals("oled")) { tv = new OLEDTV(); }
      return tv;
    }
}

// 客户端
public class TvClient1 {
    public static void main(String[] args) {
        TV tv = TVFactory.createTV("led");
        tv.assemble();
        tv.test();
        tv.pack();
    }
}